home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / MacMETH 3.2.4 / M2Tools / ErrList.DOK < prev    next >
Text File  |  1996-06-20  |  10KB  |  269 lines

  1. Modula-2 single-pass compiler error codes and restrictions
  2.  
  3. NW 4.1.84 / rev 10.7.84 / rev 29.6.86 / Assembler 9.8.87 B.St. / rev 21.3.91 HS.
  4.  
  5.  
  6. Syntax errors
  7.  
  8. -  10  identifier expected
  9. -  11  ,  comma expected
  10. -  12  ;  semicolon expected
  11. -  13  :  colon expected
  12. -  14  .  period expected
  13. -  15  )  right parenthesis expected
  14. -  16  ]  right bracket expected
  15. -  17  }  right brace expected
  16. -  18  =  equal sign expected
  17. -  19  :=  assignment expected
  18. -  20  END expected
  19. -  21  ..  ellipsis expected
  20. -  22  (  left parenthesis expected
  21. -  23  OF expected
  22. -  24  TO expected
  23. -  25  DO expected
  24. -  26  UNTIL expected
  25. -  27  THEN expected
  26. -  28  MODULE expected
  27. -  29  illegal digit, or number too large
  28. -  30  IMPORT expected
  29.  
  30. -  31  factor starts with illegal symbol
  31. -  32  identifier, (, or [ expected
  32. -  33  identifier, ARRAY, RECORD, SET, POINTER, PROCEDURE, (, or [ expected
  33. -  34  Type followed by illegal symbol
  34. -  35  statement starts with illegal symbol
  35. -  36  declaration followed by illegal symbol
  36. -  37  statement part is not allowed in definition module
  37. -  38  export list not allowed in program module
  38. -  39  EXIT not inside a LOOP statement
  39. -  40  illegal character in number
  40. -  41  number too large
  41. -  42  comment without closing *)
  42. -  44  expression must contain constant operands only
  43. -  45  control character within string
  44. -  46  too many digits (> 30)
  45.  
  46. Undefined
  47.  
  48. -  50  identifier not declared or not visible
  49.  
  50.  
  51. Class and type errors
  52.  
  53. -  51  object should be a constant
  54. -  52  object should be a type
  55. -  53  object should be a variable
  56. -  54  object should be a procedure
  57. -  55  object should be a module
  58. -  56  type should be a subrange
  59. -  57  type should be a record
  60. -  58  type should be an array
  61. -  59  type should be a set
  62. -  60  illegal base type of set
  63. -  61  incompatible type of label or of subrange bound
  64. -  62  multiply defined case (label)
  65. -  63  low bound > high bound
  66. -  64  more actual than formal parameters
  67. -  65  fewer actual than formal parameters
  68.  
  69.  66 - 73 mismatch between parameter lists in def and in impl modules
  70. -  66  more parameters in I than in D
  71. -  67  parameters with equal types in I have different types in D
  72. -  68  mismatch between VAR specifications
  73. -  69  mismatch between type specifications
  74. -  70  more parameters in D than in I
  75. -  71  mismatch between result type specifications
  76. -  72  function in D, pure procedure in I
  77. -  73  procedure in D has parameters, but not in I
  78.  
  79. -  74  code or forward procedure cannot be declared in definition module
  80. -  75  illegal type of control variable in FOR statement
  81. -  76  procedure call of a function
  82. -  77  identifiers in heading and at end do not match
  83. -  78  redefinition of a type that is declared in definition part
  84. -  79  imported module not found
  85. -  80  unsatisfied export list entry
  86. -  81  illegal type of procedure result
  87. -  82  illegal base type of subrange
  88. -  83  illegal type of case expression
  89. -  84  writing of symbol file failed
  90. -  85  keys of imported symbol files do not match
  91. -  86  error in format of symbol file
  92. -  87  CARDINAL from symbol file not compatible with this compiler
  93. -  88  symbol file not successfully opened
  94. -  89  there are procedures without bodies
  95.  
  96. Implementation restrictions of compiler
  97.  
  98. -  90  in {a..b}, if a is a constant, b must also be a constant
  99. -  91  identifier buffer overflow
  100. -  92  too many cases
  101. -  93  too many exit statements
  102. -  94  index type of array must be a subrange
  103. -  95  subrange bound must be less than 2^15
  104. -  96  too many global modules
  105. -  97  too many procedure in definition module
  106. -  98  too many structure elements in definition module
  107.  
  108.  
  109. Multiple definition
  110.  
  111. - 100  multiple definition within the same scope
  112.  
  113.  
  114. Class and type incompatibilities
  115.  
  116. - 101  illegal use of type
  117. - 102  illegal use of procedure
  118. - 103  illegal use of constant
  119. - 104  illegal use of type
  120. - 105  illegal use of procedure
  121. - 106  illegal use of expression
  122. - 107  illegal use of module
  123. - 108  constant index out of range
  124. - 109  indexed variable is not an array, or the index has the wrong type
  125. - 110  record selector is not a field identifier
  126. - 111  dereferenced variable is not a pointer
  127. - 112  operand type incompatible with sign inversion
  128. - 113  operand type incompatible with NOT
  129. - 114  x IN y: type(x) # basetype(y)
  130. - 115  type of x cannot be the basetype of a set, or y is not a set
  131. - 116  {a..b}: type of either a or b is not equal to the base type of the set
  132. - 117  incompatible operand types
  133. - 118  operand type incompatible with *
  134. - 119  operand type incompatible with /
  135. - 120  operand type incompatible with DIV
  136. - 121  operand type incompatible with MOD
  137. - 122  operand type incompatible with AND
  138. - 123  operand type incompatible with +
  139. - 124  operand type incompatible with -
  140. - 125  operand type incompatible with OR
  141. - 126  operand type incompatible with relation
  142.  
  143. 127 - 131 assignment of a procedure P to a variable of procedure type T
  144. - 127  procedure must have level 0
  145. - 128  result type of P does not match that of T
  146. - 129  mismatch of a parameter of P with the formal type list of T
  147. - 130  procedure has fewer parameters than the formal type list
  148. - 131  procedure has more parameters than the formal type list
  149.  
  150. - 132  assignment of a negative integer to a cardinal variable
  151. - 133  incompatible assignment
  152. - 134  assignment to non-variable
  153. - 135  type of expression in IF, WHILE, UNTIL clause must be BOOLEAN
  154. - 136  call of an object which is not a procedure
  155. - 137  type of VAR parameter is not identical to that of actual parameter
  156. - 138  constant out of legal range
  157. - 139  type of RETURN expression differs from procedure type
  158. - 140  illegal type of CASE expression
  159. - 141  step in FOR clause cannot be 0
  160. - 142  illegal type of control variable
  161. - 143  assignment to dynamic array is illegal
  162. - 144  incorrect type of parameter of standard procedure
  163. - 145  this parameter should be a type identifier
  164. - 146  string is too long
  165. - 147  incorrect priority specification
  166.  
  167.  
  168. Name collision
  169.  
  170. - 150  exported identifier collides with declared identifier
  171.  
  172.  
  173. Extra messages for MC68000 Assembler
  174.  
  175. - 172  error in scaling factor
  176. - 173  there are unsatisfied forward references
  177. - 174  sub-expressions not allowed here
  178. - 175  too many forward references
  179. - 176  forward references not allowed here
  180. - 177  number expected
  181. - 178  illegal use of register
  182. - 179  ENDINIT expected
  183. - 180  PC or address register expected
  184. - 181  register expected
  185. - 182  address or data register expected
  186. - 183  address register expected
  187. - 184  data register expected
  188. - 185  length qualifier expected
  189. - 186  illegal length qualifier
  190. - 187  operand starts with illegal symbol
  191. - 188  illegal indirect addressing mode
  192. - 189  offset needed for this addressing mode
  193. - 190  value must be in range 0 thru 32767
  194. - 191  trap vector must be in range 0 thru 15
  195. - 192  quick value or shift counter must be in range 1 thru 8
  196. - 193  branch too far or offset out of range
  197. - 194  immediate or absolute operand out of range
  198. - 195  bit number must be in range 0 thru 7
  199. - 196  bit number must be in range 0 thru 31
  200. - 197  comment must start with a blank, extra symbols ignored
  201. - 198  too many symbols or forward references
  202. - 199  error reading source file
  203.  
  204.  
  205. Implementation restrictions of system
  206.  
  207. - 200  not implemented
  208. - 201  integer too small for sign inversion
  209. - 202  set element outside word range
  210. - 203  overflow in multipliaction
  211. - 204  overflow in division
  212. - 205  division by zero, or modulus with negative value
  213. - 206  overflow in addition
  214. - 207  overflow in subtraction
  215. - 208  cardinal value assigned to integer variable too large
  216. - 209  set size too large
  217. - 210  array size too large
  218. - 211  address too large
  219. - 212  character array component cannot correspond to VAR parameter
  220. - 213  illegal store operation (compiler error?)
  221. - 214  set elements must be constants
  222. - 215  expression too complex  (stack overflow)
  223. - 216  double precision multiply and divide are not implemented
  224. - 217  long cardinal value assigned to long integer variable too large
  225. - 218  assignment of a negative integer to a long cardinal variable
  226. - 222  output file not opened  (directory full?)
  227. - 223  output incomplete (disk full?)
  228. - 224  too many external references
  229. - 225  too many strings
  230. - 226  program too long
  231. - 227  fixup table overflow
  232.  
  233. MC68000:
  234.  
  235. - 230  expression not loadable (implementation restriction)
  236. - 231  expression not addressable (implementation restriction)
  237. - 232  expression not allowed (implementation restriction)
  238. - 233  illegal expression (implementation restriction)
  239. - 234  register res. error (e.g. code produced in declaration part)
  240. - 235  illegal selector for contant index / field
  241. - 236  too many WITH nested (> 4)
  242. - 237  illegal operand (implementation restriction)
  243. - 238  illegal size of operand (implementation restriction)
  244. - 239  type should be LONGREAL
  245. - 240  parameter should by dynamic array parameter
  246. - 241  illegal type for floating point operation (implementation restriction)
  247. - 244  implementation restriction for floating point comparison
  248. - 245  illegal type for floating point assignment (implementation restriction)
  249. - 247  argument must be a positive constant in the MC68881 Constant ROM
  250.  
  251. Warnings:
  252.  
  253. - 260  Warning: Type transfer functions will be removed from Modula 2
  254. - 261  Warning: Export in DEFINITION Module will be removed from Modula 2
  255. - 262  Warning: Import of module SYSTEM
  256. - 263  Warning: Ident never used
  257.  
  258. Code generator emergency brake's:
  259.  
  260. - 285  illegal floating point move
  261. - 286  illegal offset or range distance too big
  262. - 287  illegal size (byte) for A-register operation
  263. - 288  illegal size for A-register operation
  264. - 292  illegal size for A-register move
  265. - 293  illegal size (byte) for A-register load
  266. - 298  implementation restriction, effective address assertion
  267. - 299  implementation restriction, compiler assertion
  268. - 300  too many constants in enumeration type
  269.